iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
0
自我挑戰組

ASP.NET MVC5從入門到退坑系列 第 12

[Day12]Razor語法規則

  • 分享至 

  • xImage
  •  

什麼是Razor語法?

Razor語法內包含了C#與HTML,主要作用是的 C#程式嵌入到 HTML 中的標記語法內,比如下面這段code將item.id嵌入HTML的標籤內

<p>@item.id</p>

如何使用?

宣告變數

@string str="字串"

顯示變數

<p>@str</p>

宣告多行C#變數

@{
  string str="字串";
  int no=123;
  int[] arr={1,2,3,4,5};
}

常見的語法規則

規則一
以符號@為C#語法開頭,只要遇到@開頭就會自動解析為C#

@if(A>B){
  statement;
}@else{
  statement;
}

規則二
只要是@{...}大括號區塊內可以編寫多行C#程式碼,不需重複使用@開頭

@{
  int a=1;
  int b=2;
  string str="這是字串";
}

規則三
C#Inline表達式,將C#穿插在HTML中

<p>帳號:@Id </p>
<p>密碼:@Password</p>
<p>年紀:@Age</p>

規則四
C#程式區塊中HTML隱式轉換,若@{...}夾雜HTML語法,Razor會自動隱式轉換,將該部分輸出為HTML

@{
  if(A>B){
   <p>@A 比較大</p>//需要特別注意若在區塊內遇到HTML的Tag,在Tag之後的變數需要再加上@,否則無法正確輸出
 }
}

規則五
註解

@* ... *@//單行與多行都可使用

規則六
Razor明確表達式

@(...)//括號內會明確指示是C#運算式

規則七
HTML與JS的編碼與不編碼

var msg = @"<button type='button' onclick='alert(""Hello World"")'>HTML與JS的編碼與不編碼</button>";
<p>@(msg)</p>//使用@(...)會把HTML與JS編碼成純文字,增加網站安全性
<p>@Html.Raw(msg)</p>//不會做編碼,會顯示原始的字串

上一篇
[Day11]強型別與動態型別
下一篇
[Day13]網址路由詳解
系列文
ASP.NET MVC5從入門到退坑30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言